package request

import "github.com/astaxie/beego/validation"

type ProductRequest struct {
	ProdId             uint         `json:"prodId"`             //产品ID
	Status             int          `json:"status"`             //状态
	ProdName           string       `json:"prodName"`           //商品名称
	Price              float64      `json:"price"`              //商品价格  取第一个的价格
	OriPrice           float64      `json:"oriPrice"`           //商品原价  取第一个的价格
	TotalStocks        uint         `json:"totalStocks"`        //库存量    所有规格库存的总和
	Brief              string       `json:"brief"`              //简要描述,卖点等
	Imgs               []ImgRequest `json:"imgs"`               //商品图片
	CategoryId         string       `json:"categoryId"`         //商品分类
	SkuTags            string       `json:"skuTags"`            //商品规格
	SkuList            []SkuRequest `json:"skuList"`            //sku列表
	Content            string       `json:"content"`            //商品详情
	DeliveryTemplateId uint         `json:"deliveryTemplateId"` //运费模板id
	TagList            []uint       `json:"tagList"`            //分组标签列表
	DeliveryMode       string       `json:"deliveryMode"`       // 配送方式，商家配送：1 用户自提：2
	ContentFileIds     []uint       `json:"contentFileIds"`     // content图片
	ExpireFileIds      []uint       `json:"expireFileIds"`      //过期图片id
	//Pic                string       `json:"pic"`                    //图片封面
	//DeliveryMode       DeliveryModeVo `json:"deliveryMode"`           // 配送方式，数据库存放这个的json

}

func (p *ProductRequest) Valid(v *validation.Validation) {
	if p.ProdName == "" {
		v.SetError("ProdName", "商品名称不能为空")
	} else if p.Price < 0 {
		v.SetError("Price", "请输入商品价格")
	} else if p.OriPrice < 0 {
		v.SetError("OriPrice", "请输入商品原价")
	} else if p.TotalStocks < 0 {
		v.SetError("TotalStocks", "请输入商品库存")
	} else if len(p.Brief) > 500 {
		v.SetError("Brief", "商品卖点长度应该小于500")
	} else if len(p.Imgs) == 0 {
		v.SetError("Imgs", "请选择图片上传")
	} else if p.DeliveryMode == "" {
		v.SetError("DeliveryMode", "请选择配送方式")
	} else if len(p.Imgs) == 0 {
		v.SetError("Imgs", "请选择商品图片")
	} else if len(p.TagList) == 0 {
		v.SetError("TagList", "请选择产品分组")
	}
}

type ImgRequest struct {
	FileId uint   `json:"fileId"`
	Pic    string `json:"pic"`
}
